<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/linux/dqblk_qtree.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/linux/dqblk_qtree.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="k">/*</span>
<a name="2" /><span class="True">       2:</span> <span class="k"> *    Definitions of structures and functions for quota formats using trie</span>
<a name="3" /><span class="True">       3:</span> <span class="k"> */</span>
<a name="4" /><span class="True">       4:</span> 
<a name="5" /><span class="True">       5:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX0RRQkxLX1FUUkVFX0hfMA__"><span class="b">_LINUX_DQBLK_QTREE_H</span></a>
<a name="6" /><span class="True">       6:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX0RRQkxLX1FUUkVFX0hfMA__"><span class="b">_LINUX_DQBLK_QTREE_H</span></a>
<a name="7" /><span class="True">       7:</span> 
<a name="8" /><span class="True">       8:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="9" /><span class="True">       9:</span> 
<a name="10" /><span class="True">      10:</span> <span class="k">/* Numbers of blocks needed for updates - we count with the smallest</span>
<a name="11" /><span class="True">      11:</span> <span class="k"> * possible block size (1024) */</span>
<a name="12" /><span class="True">      12:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UVRSRUVfSU5JVF9BTExPQ18w"><span class="b">QTREE_INIT_ALLOC</span></a> <span class="c">4</span>
<a name="13" /><span class="True">      13:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UVRSRUVfSU5JVF9SRVdSSVRFXzA_"><span class="b">QTREE_INIT_REWRITE</span></a> <span class="c">2</span>
<a name="14" /><span class="True">      14:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UVRSRUVfREVMX0FMTE9DXzA_"><span class="b">QTREE_DEL_ALLOC</span></a> <span class="c">0</span>
<a name="15" /><span class="True">      15:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UVRSRUVfREVMX1JFV1JJVEVfMA__"><span class="b">QTREE_DEL_REWRITE</span></a> <span class="c">6</span>
<a name="16" /><span class="True">      16:</span> 
<a name="17" /><span class="True">      17:</span> <span class="m">struct</span> <span class="b">dquot</span><span class="f">;</span>
<a name="18" /><span class="True">      18:</span> 
<a name="19" /><span class="True">      19:</span> <span class="k">/* Operations */</span>
<a name="20" /><span class="True">      20:</span> <span class="m">struct</span> <span class="b">qtree_fmt_operations</span> <span class="f">{</span>
<a name="21" /><span class="True">      21:</span>     <span class="m">void</span> <span class="f">(</span><span class="f">*</span><span class="b">mem2disk_dqblk</span><span class="f">)</span><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="b">disk</span><span class="f">,</span> <span class="m">struct</span> <span class="b">dquot</span> <span class="f">*</span><span class="b">dquot</span><span class="f">)</span><span class="f">;</span>    <span class="k">/* Convert given entry from in memory format to disk one */</span>
<a name="22" /><span class="True">      22:</span>     <span class="m">void</span> <span class="f">(</span><span class="f">*</span><span class="b">disk2mem_dqblk</span><span class="f">)</span><span class="f">(</span><span class="m">struct</span> <span class="b">dquot</span> <span class="f">*</span><span class="b">dquot</span><span class="f">,</span> <span class="m">void</span> <span class="f">*</span><span class="b">disk</span><span class="f">)</span><span class="f">;</span>    <span class="k">/* Convert given entry from disk format to in memory one */</span>
<a name="23" /><span class="True">      23:</span>     <span class="m">int</span> <span class="f">(</span><span class="f">*</span><span class="b">is_id</span><span class="f">)</span><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="b">disk</span><span class="f">,</span> <span class="m">struct</span> <span class="b">dquot</span> <span class="f">*</span><span class="b">dquot</span><span class="f">)</span><span class="f">;</span>    <span class="k">/* Is this structure for given id? */</span>
<a name="24" /><span class="True">      24:</span> <span class="f">}</span><span class="f">;</span>
<a name="25" /><span class="True">      25:</span> 
<a name="26" /><span class="True">      26:</span> <span class="k">/* Inmemory copy of version specific information */</span>
<a name="27" /><span class="True">      27:</span> <span class="m">struct</span> <span class="b">qtree_mem_dqinfo</span> <span class="f">{</span>
<a name="28" /><span class="True">      28:</span>     <span class="m">struct</span> <span class="b">super_block</span> <span class="f">*</span><span class="b">dqi_sb</span><span class="f">;</span>    <span class="k">/* Sb quota is on */</span>
<a name="29" /><span class="True">      29:</span>     <span class="m">int</span> <span class="b">dqi_type</span><span class="f">;</span>            <span class="k">/* Quota type */</span>
<a name="30" /><span class="True">      30:</span>     <span class="m">unsigned</span> <span class="m">int</span> <span class="b">dqi_blocks</span><span class="f">;</span>    <span class="k">/* # of blocks in quota file */</span>
<a name="31" /><span class="True">      31:</span>     <span class="m">unsigned</span> <span class="m">int</span> <span class="b">dqi_free_blk</span><span class="f">;</span>    <span class="k">/* First block in list of free blocks */</span>
<a name="32" /><span class="True">      32:</span>     <span class="m">unsigned</span> <span class="m">int</span> <span class="b">dqi_free_entry</span><span class="f">;</span>    <span class="k">/* First block with free entry */</span>
<a name="33" /><span class="True">      33:</span>     <span class="m">unsigned</span> <span class="m">int</span> <span class="b">dqi_blocksize_bits</span><span class="f">;</span>    <span class="k">/* Block size of quota file */</span>
<a name="34" /><span class="True">      34:</span>     <span class="m">unsigned</span> <span class="m">int</span> <span class="b">dqi_entry_size</span><span class="f">;</span>    <span class="k">/* Size of quota entry in quota file */</span>
<a name="35" /><span class="True">      35:</span>     <span class="m">unsigned</span> <span class="m">int</span> <span class="b">dqi_usable_bs</span><span class="f">;</span>    <span class="k">/* Space usable in block for quota data */</span>
<a name="36" /><span class="True">      36:</span>     <span class="m">unsigned</span> <span class="m">int</span> <span class="b">dqi_qtree_depth</span><span class="f">;</span>    <span class="k">/* Precomputed depth of quota tree */</span>
<a name="37" /><span class="True">      37:</span>     <span class="m">struct</span> <span class="b">qtree_fmt_operations</span> <span class="f">*</span><span class="b">dqi_ops</span><span class="f">;</span>    <span class="k">/* Operations for entry manipulation */</span>
<a name="38" /><span class="True">      38:</span> <span class="f">}</span><span class="f">;</span>
<a name="39" /><span class="True">      39:</span> 
<a name="40" /><span class="True">      40:</span> <span class="m">int</span> <span class="b">qtree_write_dquot</span><span class="f">(</span><span class="m">struct</span> <span class="b">qtree_mem_dqinfo</span> <span class="f">*</span><span class="b">info</span><span class="f">,</span> <span class="m">struct</span> <span class="b">dquot</span> <span class="f">*</span><span class="b">dquot</span><span class="f">)</span><span class="f">;</span>
<a name="41" /><span class="True">      41:</span> <span class="m">int</span> <span class="b">qtree_read_dquot</span><span class="f">(</span><span class="m">struct</span> <span class="b">qtree_mem_dqinfo</span> <span class="f">*</span><span class="b">info</span><span class="f">,</span> <span class="m">struct</span> <span class="b">dquot</span> <span class="f">*</span><span class="b">dquot</span><span class="f">)</span><span class="f">;</span>
<a name="42" /><span class="True">      42:</span> <span class="m">int</span> <span class="b">qtree_delete_dquot</span><span class="f">(</span><span class="m">struct</span> <span class="b">qtree_mem_dqinfo</span> <span class="f">*</span><span class="b">info</span><span class="f">,</span> <span class="m">struct</span> <span class="b">dquot</span> <span class="f">*</span><span class="b">dquot</span><span class="f">)</span><span class="f">;</span>
<a name="43" /><span class="True">      43:</span> <span class="m">int</span> <span class="b">qtree_release_dquot</span><span class="f">(</span><span class="m">struct</span> <span class="b">qtree_mem_dqinfo</span> <span class="f">*</span><span class="b">info</span><span class="f">,</span> <span class="m">struct</span> <span class="b">dquot</span> <span class="f">*</span><span class="b">dquot</span><span class="f">)</span><span class="f">;</span>
<a name="44" /><span class="True">      44:</span> <span class="m">int</span> <span class="b">qtree_entry_unused</span><span class="f">(</span><span class="m">struct</span> <span class="b">qtree_mem_dqinfo</span> <span class="f">*</span><span class="b">info</span><span class="f">,</span> <span class="m">char</span> <span class="f">*</span><span class="b">disk</span><span class="f">)</span><span class="f">;</span>
<a name="45" /><span class="True">      45:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">qtree_depth</span><span class="f">(</span><span class="m">struct</span> <span class="b">qtree_mem_dqinfo</span> <span class="f">*</span><span class="b">info</span><span class="f">)</span>
<a name="46" /><span class="True">      46:</span> <span class="f">{</span>
<a name="47" /><span class="True">      47:</span>     <span class="m">unsigned</span> <span class="m">int</span> <span class="b">epb</span> <span class="f">=</span> <span class="b">info</span><span class="f">-&gt;</span><span class="b">dqi_usable_bs</span> <span class="f">&gt;&gt;</span> <span class="c">2</span><span class="f">;</span>
<a name="48" /><span class="True">      48:</span>     <span class="m">unsigned</span> <span class="m">long</span> <span class="m">long</span> <span class="b">entries</span> <span class="f">=</span> <span class="b">epb</span><span class="f">;</span>
<a name="49" /><span class="True">      49:</span>     <span class="m">int</span> <span class="b">i</span><span class="f">;</span>
<a name="50" /><span class="True">      50:</span> 
<a name="51" /><span class="True">      51:</span>     <span class="m">for</span> <span class="f">(</span><span class="b">i</span> <span class="f">=</span> <span class="c">1</span><span class="f">;</span> <span class="b">entries</span> <span class="f">&lt;</span> <span class="f">(</span><span class="c">1ULL</span> <span class="f">&lt;&lt;</span> <span class="c">32</span><span class="f">)</span><span class="f">;</span> <span class="b">i</span><span class="f">++</span><span class="f">)</span>
<a name="52" /><span class="True">      52:</span>         <span class="b">entries</span> <span class="f">*=</span> <span class="b">epb</span><span class="f">;</span>
<a name="53" /><span class="True">      53:</span>     <span class="m">return</span> <span class="b">i</span><span class="f">;</span>
<a name="54" /><span class="True">      54:</span> <span class="f">}</span>
<a name="55" /><span class="True">      55:</span> 
<a name="56" /><span class="True">      56:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _LINUX_DQBLK_QTREE_H */</span>
<a name="57" /><span class="True">      57:</span> </pre>
  </body>
</html>
